<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>其他数据类型转换为Number</title>
</head>
<body>
<script>
    /*其他数据类型转换为Number
    *     方法一.使用Number()函数
    *           1.. 字符串---->number
    *               (1).如果是纯数字的字符串，直接转换成数字
    *               (2).如果字符串非数字，则转换为NAN
    *               (3).如果字符串是空串或者是一个全是空格的字符串，则转换为0
    *
    *           2.布尔值---->number
    *                (1).true 转换为1
    *                (2).false 转换为0
    *              var a= +true  //1
    *           3.null---->number  结果是0
    *           4.undefined---->number 结果是NAN
    *     方法二. 使用parseInt() 取有效的正数
    *               专门用来对付字符串的 取出字符串中的有效数字 并将转换成number
    *             使用parseFloat() 取有效的正数和小数
    *                           在js中 0x开头是16进制
    *                            0开头是8进制
    *                            0b开头是2进制
    *    方法三.运用运算符转换成number
    *           字符串----->number
    *           字符串-0 或/1或 *1 即可转换为number
    *   方法四.变量前加一个加号 + 即可转换成number 适用于任意数据类型
    *
    * */
//字符串转换为number
    var a="123";
    a=Number(a);
    console.log(a); //123
    console.log(typeof a);//number

    var b="456bac";
    b=Number(b);
    console.log(b);//NAN
    console.log(typeof b);//number

    var c="";
    c=Number(c);
    console.log(c);//0
    console.log(typeof c);//number

    var d="      ";
    d=Number(d);
    console.log(d);//0
    console.log(typeof d);//number
//布尔值转换为number
    var e=true;
    e=Number(e);
    console.log(e);//1
    console.log(typeof e);//number

    var f=false;
    f=Number(f);
    console.log(f);//0
    console.log(typeof f);//number
//null转换成number
    var g=null;
    g=Number(g);
    console.log(g);//0
    console.log(typeof g);//number
//undefined 转换成number
    var h=undefined;
    h=Number(h);
    console.log(h);//NAN
    console.log(typeof h);//number

//调用parseInt()将x转换为number 常用
    var x="500px";
    x=parseInt(x);
    console.log(x);//500
    console.log(typeof x);//number
//调用parseFloat()将y转换为number
    var y="800.36px";
    y=parseFloat(y);
    console.log(y);//800.36
    console.log(typeof y);//number

    var z=0xff;//16进制转换成10进制
    z=parseInt(z);
    console.log(z);//255

    var zh="070";//8进制转换成10进制
    zh=parseInt(zh,10);//  第二个参数10 表示10进制
    console.log(zh);//返回70

    var zhh="0b11";//2进制转换成10进制
    zhh=parseInt(zhh,10);
    console.log(zhh);//0

    var h1="125";
    h1=h1-0; //运用运算符转换成string 相减都要转换成number 才可以运算
    console.log(h1);//125
    console.log(typeof h1);//number
</script>
</body>
</html>